
import time
import _thread
import ustruct as struct
import math
from machine import I2C, UART, Pin, PWM, Timer, ADC


m0 = Pin(12, Pin.OUT)
m1 = Pin(13, Pin.OUT)

m0.value(0)
m1.value(0)

m0.value(1)
m1.value(1)

uart = UART(1, baudrate = 9600,bits = 8,parity = None,stop = 1,
     timeout=10, timeout_char=1, tx = Pin(8),rx = Pin(9))

def readResult(uart):
    while True:
        if uart.any():
            command = uart.readline()
            #print(command)
            print('hex response:', [hex(x) for x in command])

            if command:
                data = ''
                try:
                    data = command.decode()
                except UnicodeError as e:
                    data = ''
                print(data)
            return command

uart.write(bytearray([0xC1, 0xC1, 0xC1]))

source = readResult(uart)


'''
SPEED[ 7 : 6 ] UART CS[ 1 : 0 ]：串口校验位
00：8N1（默认）
01：8O1
10：8E1
11：同 8N1
SPEED[ 5 : 3 ] UART BAUD[ 2 : 0 ]：串口波特率
000：串口波特率为 1200 bps
001：串口波特率为 2400 bps
010：串口波特率为 4800 bps
011：串口波特率为 9600 bps（默认）
100：串口波特率为 19200 bps
101：串口波特率为 38400 bps
110：串口波特率为 57600 bps
111：串口波特率为 115200 bps
SPEED[ 2 : 0 ] AIR_SPEED[ 2 : 0 ]：空中速度

CHAN [ 7 : 0 ]：通信频率（2400MHz~2500MHz）
出厂默认 ：0x00 ( 2400MHz )
FLRC(0 信道~50 信道：频点：2.400+2*CHAN；51 信道~100 信道：频点 2.401+2*（CHAN%51）)
LORA(0 信道~50 信道：频点：2400+2*CHAN)

OPTION[7]：调制方式
0：FLRC 调制方式（默认）
1：LORA 调制方式
OPTION[6] 连续传输：可以传输文件（空速自适应，不可配）
0：非连续传输（默认）
1：连续传输
OPTION[ 5：2 ]：保留
OPTION[ 1：0 ] SendPower[ 1：0 ]：发射功率
11：27dBm（默认）
10：24dBm
01：21dBm
00：18dBm
注：功率均为典型值
'''

modify = bytearray(source)
#SPEED 串口校验位(2bit) + 串口波特率(3bit) + 空中速度(3bit)
modify[3] = 0b00111011

#频率
modify[4] = 0b00000000

#OPTION  调制方式(1bit) + 传输方式(1bit) + 保留（4bit） + 发射功率(2bit)
modify[5] = 0b10000011

print('hex response:', [hex(x) for x in modify])
uart.write(modify)
readResult(uart)
